package com.woniuxy.sddfp.sms;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;


/**
 * @author yellow Doctor
 * @date 2025-06-24
 * @desc 蜗牛创想：www.woniuxy.com
 *
 *   短信模块是独立的项目
 *       项目中很多地方会用到 短信 功能 把这个功能独立出来 别人调用这个服务
 *       1、登录
 *       2、下订单通知
 *       3、修改密码
 *       ...
 *
 *    想做一个短信模板:
 *      1、RedisTemplate
 *      2、RabbitTemplate
 *      3、ESTemplate
 *      研究上面的 原理?
 *        1、自动装配       这个类 RedisTemplate  如何添加到ioc容器中的
 *            1、@SpringBootApplication ==> @EnableAutoConfiguration  开启自动装配
 *                  ===>@Import(AutoConfigurationImportSelector.class) (把对象添加到IOC容器中)
 *                  ===> 180行 AutoConfigurationImportSelector 加载 META-INF/spring.factories 在springboot- AutoConfiguration.jar
 *                  ===> spring.factories 这个文件中都是自动配置的类
 *                    RedisAutoConfiguration    RedisTemplate
 *                    RabbitAutoConfiguration   RabbitTemplate
 *                    ElasticsearchRepositoriesAutoConfiguration   ESTemplate
 *
 *        2、模板类的实现 和 实例化添加到IOC容器中
 *               点击 进入 RedisAutoConfiguration  这个自动装配的类中  （如果是红色 没有添加依赖）
 *                 1、读取 yaml 中的配置文件
 *                        @EnableConfigurationProperties(RedisProperties.class)  读取文件
 *                 2、创建RedisTemplate 对象添加到ioc容器中
 *                       @Bean
                         @ConditionalOnMissingBean(name = "redisTemplate")
                         public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
                               throws UnknownHostException {
                               RedisTemplate<Object, Object> template = new RedisTemplate<>();
                               template.setConnectionFactory(redisConnectionFactory);    * 		return template;
                         }
 *
 *      4、SMSTemplate  模板
 *
 *
 */
@SpringBootApplication
public class SmsApplication {

    public static void main(String[] args) {

        SpringApplication.run(SmsApplication.class, args);
    }

}
